Next | Prev | Up | Top | Contents | Index

Performance Comparison

The data displayed in Figure 8-1 was collected on a 4-processor Challenge system under IRIX 5.3, using a test program that wrote approximately 250,000 bytes of binary data using a specified blocksize and one of three options:

Figure 8-1 : Effect of Blocksize on write() Performance The values in Table 8-1reflect the total execution time for one run of the program, as reported by the time command (see the time(1) reference page).

Data on Which Figure 8-1 is Based
BlocksizeO_SYNCO_DIRECTAsynchronous
51240.413.92.7
102425.38.52.6
204812.95.82.6
40968.54.42.6
81926.23.72.6
163845.03.42.6
327684.43.12.5
655364.13.02.5
2000003.92.92.5

Blocksize was almost irrelevant for asynchronous writes, because the only delay was the time to switch to kernel mode and block-copy the data from the program buffer to a kernel buffer. The actual disk operations occurred asynchronously, in another CPU, and so are not reflected in the time output. As shown in Figure 8-1, O_DIRECT is considerably faster than O_SYNC.


Next | Prev | Up | Top | Contents | Index